package main

import (
	"fmt"
	"svc"
	"time"
)

type Program struct{}

func (p *Program) Start() error {
	fmt.Println("application is begin.")
	//必须非阻塞，因此通过协程封装。
	go func() {
		for {
			time.Sleep(time.Second)
			fmt.Println("application is running.")
		}
	}()
	return nil
}
func (p *Program) Init() error {
	//just demon,do nothing
	return nil
}
func (p *Program) Stop() error {
	fmt.Println("application is end.")
	return nil
}

//当接收到Control+C,kill -1,kill -2 的时候,都可执行defer函数
// kill -9依然不会正常退出。
func main() {
	p := &Program{}
	svc.Run(p)
}
